﻿using System;
using System.Configuration;
using System.Collections.Generic;
using devtm.Collections;
namespace devtm.Configuration
{

    public enum EnumTypeConfiguration
    {
        Default,
        ConnectionStringCollection,
        KeyValueCollection,
        ProviderSettingsCollection,
        ElementCollection,
        AddRemoveClearMapCollection,
        AddRemoveClearMapAlternateCollection,
        BasicMapCollection,
        BasicMapAlternateCollection,
        UndefineCollection
    }

    public interface IElementSection
    {
        bool CanDel { get; set; }
        System.Configuration.ConfigurationElement ConfigurationElement { get; set; }
        System.Configuration.ConfigurationSectionGroup Group { get; set; }
        bool HasGroup { get; set; }
        EnumTypeConfiguration HasCollectionType { get; set; }
        bool Ignore { get; set; }
        int Level { get; }
        IElementSection ParentItem { get; }
        string Path { get; }
        SectionInformation SectionInformation { get; set; }
        System.Windows.Visibility ViewAddItemCollection { get; set; }
        String GetElementName { get; }

        IEnumerable<IConfigProperty> Children { get; set; }
        void TestErrors();
        TableCollection<IElementAction, string> ButtonActions { get; }
        IElementSection AddConfigurationElement(ConfigurationElement configElement, string name);
        bool Contains(ConfigurationElement element);
        IContainerHeader ContextTitle { get; }

        ConfigurationSection Section { get; }


        String CastToClipboard();
        

    }
}
